\chapter{Mejora de Soluciones}

\section{Definición de funcionalidades}


\begin{enumerate}
\item Definir una estructura para almacenar una solución. Una solución será una secuencia de piezas en posiciones concretas. Es conveniente que dicha estructura se pueda escribir a un fichero y leer del mismo. Será interesante que dicha solución pudiese obtenerse mediante el desplazamiento del ratón por la imagen.
\item Val(solucion). Construir una función val que evalue una solución.
\item Vecina(sol)=sol. Construir una función que modifique una solución. Posibles opciones:

  \begin{itemize}
  \item Considerar la modificación de una pieza del camino. Reconstruirlo para que vuelva a ser válido.
  \item Determinar un punto del camino, considerarlo como centro de una circunferencia de radio aleatorio. Determinar el corte de dicha circunferencia con el camino. Ajustar el camino.
  \end{itemize}

\end{enumerate}

\newpage

\section{Código Fuente}
\lstinputlisting[title=Posicion,language=Java]{src/PosicionMejorada.java}
\lstinputlisting[title=Camino,language=Java]{src/CaminoMejorada.java}
\lstinputlisting[title=Monticulo,language=Java]{src/MonticuloMejorada.java}

\newpage

\section{Resultados Obtenidos}
Se ha realizado un ejemplo con este código.
\lstinputlisting[title=Main,language=Java]{src/MainMejorada.java}
\newpage
Y se han obtenido estos resultados
\lstinputlisting[title=Resultados]{src/pruebas/salidaMejorada}


